
<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Python: module golem.golem</title>
</head><body bgcolor="#f0f0f8">

<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
<tr bgcolor="#7799ee">
<td valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="golem.html"><font color="#ffffff">golem</font></a>.golem</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/opt/local/lib/python2.4/site-packages/golem/golem.py">/opt/local/lib/python2.4/site-packages/golem/golem.py</a></font></td></tr></table>
    <p><tt>The&nbsp;Golem&nbsp;ontology&nbsp;parsing&nbsp;library.<br>
&nbsp;<br>
This&nbsp;module&nbsp;contains&nbsp;the&nbsp;main&nbsp;class&nbsp;which&nbsp;parses&nbsp;Golem/CML&nbsp;dictionaries,&nbsp;<br>
as&nbsp;defined&nbsp;by&nbsp;the&nbsp;CML&nbsp;and&nbsp;&nbsp;Golem&nbsp;schemata,&nbsp;and&nbsp;allows&nbsp;you&nbsp;to&nbsp;use&nbsp;them&nbsp;to&nbsp;<br>
extract&nbsp;and&nbsp;convert&nbsp;information&nbsp;found&nbsp;in&nbsp;CML&nbsp;datafiles.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#fffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
    
<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="copy.html">copy</a><br>
<a href="lxml.etree.html">lxml.etree</a><br>
</td><td width="25%" valign=top><a href="new.html">new</a><br>
<a href="os.html">os</a><br>
</td><td width="25%" valign=top><a href="simplejson.html">simplejson</a><br>
<a href="sys.html">sys</a><br>
</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
    
<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl>
<dt><font face="helvetica, arial"><a href="__builtin__.html#dict">__builtin__.dict</a>(<a href="__builtin__.html#object">__builtin__.object</a>)
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="golem.golem.html#Dictionary">Dictionary</a>
</font></dt></dl>
</dd>
<dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a>
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="golem.golem.html#Entry">Entry</a>
</font></dt><dt><font face="helvetica, arial"><a href="golem.golem.html#GXpath">GXpath</a>
</font></dt><dt><font face="helvetica, arial"><a href="golem.golem.html#ImpOnlyEntry">ImpOnlyEntry</a>
</font></dt></dl>
</dd>
</dl>
 <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="Dictionary">class <strong>Dictionary</strong></a>(<a href="__builtin__.html#dict">__builtin__.dict</a>)</font></td></tr>
    
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt>Main&nbsp;class&nbsp;for&nbsp;representing&nbsp;CML/Golem&nbsp;dictionaries.<br>
&nbsp;<br>
Example&nbsp;of&nbsp;usage:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<br>
&gt;&gt;&gt;&nbsp;from&nbsp;StringIO&nbsp;import&nbsp;StringIO<br>
&gt;&gt;&gt;&nbsp;dictionarystring&nbsp;=&nbsp;"""&lt;?xml&nbsp;version="1.0"?&gt;<br>
...&nbsp;&lt;dictionary&nbsp;<br>
...&nbsp;&nbsp;&nbsp;namespace="<a href="http://www.materialsgrid.org/castep/dictionary">http://www.materialsgrid.org/castep/dictionary</a>"<br>
...&nbsp;&nbsp;&nbsp;dictionaryPrefix="castep"&nbsp;<br>
...&nbsp;&nbsp;&nbsp;title="CASTEP&nbsp;<a href="#Dictionary">Dictionary</a>"<br>
...&nbsp;&nbsp;&nbsp;xmlns="<a href="http://www.xml-cml.org/schema">http://www.xml-cml.org/schema</a>"<br>
...&nbsp;&nbsp;&nbsp;xmlns:h="<a href="http://www.w3.org/1999/xhtml/">http://www.w3.org/1999/xhtml/</a>"<br>
...&nbsp;&nbsp;&nbsp;xmlns:cml="<a href="http://www.xml-cml.org/schema">http://www.xml-cml.org/schema</a>"<br>
...&nbsp;&nbsp;&nbsp;xmlns:xsd="<a href="http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchema</a>"<br>
...&nbsp;&nbsp;&nbsp;xmlns:golem="<a href="http://www.lexical.org.uk/golem">http://www.lexical.org.uk/golem</a>"<br>
...&nbsp;&nbsp;&nbsp;xmlns:xsl="<a href="http://www.w3.org/1999/XSL/Transform">http://www.w3.org/1999/XSL/Transform</a>"&gt;<br>
...&nbsp;&nbsp;&nbsp;&lt;entry&nbsp;id="xcFunctional"&nbsp;term="Exchange-Correlation&nbsp;Functional"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;annotation&nbsp;/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;definition&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;exchange-correlation&nbsp;functional&nbsp;used.<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/definition&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;description&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:div&nbsp;class="dictDescription"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Available&nbsp;values&nbsp;for&nbsp;this&nbsp;are:<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:ul&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:li&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:strong&gt;LDA&lt;/h:strong&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,&nbsp;the&nbsp;Local&nbsp;Density&nbsp;Approximation<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/h:li&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:li&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:strong&gt;PW91&lt;/h:strong&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,&nbsp;Perdew&nbsp;and&nbsp;Wang's&nbsp;1991&nbsp;formulation<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/h:li&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:li&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:strong&gt;PBE&lt;/h:strong&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Perdew,&nbsp;Burke&nbsp;and&nbsp;Enzerhof's&nbsp;original&nbsp;GGA<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;functional<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/h:li&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:li&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:strong&gt;RPBE&lt;/h:strong&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,&nbsp;Hammer&nbsp;et&nbsp;al's&nbsp;revised&nbsp;PBE&nbsp;functional<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/h:li&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/h:ul&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/h:div&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/description&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;metadataList&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;metadata&nbsp;name="dc:author"&nbsp;content="golem-kiln"&nbsp;/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/metadataList&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:xpath&gt;/cml:cml/cml:parameterList[@dictRef="input"]/cml:parameter[@dictRef="castep:xcFunctional"]&lt;/golem:xpath&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:template&nbsp;call="scalar"&nbsp;role="getvalue"&nbsp;binding="pygolem_serialization"&nbsp;/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:template&nbsp;role="arb_to_input"&nbsp;binding="input"&nbsp;input="external"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:stylesheet&nbsp;version='1.0'&nbsp;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:xsl='<a href="http://www.w3.org/1999/XSL/Transform">http://www.w3.org/1999/XSL/Transform</a>'<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:cml='<a href="http://www.xml-cml.org/schema">http://www.xml-cml.org/schema</a>'&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:strip-space&nbsp;elements="*"&nbsp;/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:output&nbsp;method="text"&nbsp;/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:param&nbsp;name="p1"&nbsp;/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:template&nbsp;match="/"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:text&gt;XC_FUNCTIONAL&nbsp;&lt;/xsl:text&gt;&lt;xsl:value-of&nbsp;select="$p1"&nbsp;/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
...&nbsp;&nbsp;&nbsp;&lt;/xsl:template&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:stylesheet&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/golem:template&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:implements&gt;convertibleToInput&lt;/golem:implements&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:implements&gt;value&lt;/golem:implements&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:implements&gt;absolute&lt;/golem:implements&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:childOf&gt;input&lt;/golem:childOf&gt;<br>
...&nbsp;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:possibleValues&nbsp;type="string"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:enumeration&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:value&gt;LDA&lt;/golem:value&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:value&gt;PW91&lt;/golem:value&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:value&gt;PBE&lt;/golem:value&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:value&gt;RPBE&lt;/golem:value&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:value&gt;HF&lt;/golem:value&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:value&gt;SHF&lt;/golem:value&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:value&gt;EXX&lt;/golem:value&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:value&gt;SX&lt;/golem:value&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:value&gt;ZERO&lt;/golem:value&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:value&gt;HF-LDA&lt;/golem:value&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:value&gt;SHF-LDA&lt;/golem:value&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:value&gt;EXX-LDA&lt;/golem:value&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:value&gt;SX-LDA&lt;/golem:value&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/golem:enumeration&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/golem:possibleValues&gt;<br>
...&nbsp;&nbsp;&nbsp;&lt;/entry&gt;<br>
...&nbsp;<br>
...&nbsp;&lt;entry&nbsp;id="scalar"&nbsp;term="Scalar&nbsp;default&nbsp;call"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;annotation&nbsp;/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;definition&nbsp;/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;description&nbsp;/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;metadataList&nbsp;/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:template&nbsp;role="getvalue"&nbsp;binding="pygolem_serialization"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:stylesheet&nbsp;version='1.0'&nbsp;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:xsl='<a href="http://www.w3.org/1999/XSL/Transform">http://www.w3.org/1999/XSL/Transform</a>'<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:cml='<a href="http://www.xml-cml.org/schema">http://www.xml-cml.org/schema</a>'<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:str="<a href="http://exslt.org/strings">http://exslt.org/strings</a>"<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:func="<a href="http://exslt.org/functions">http://exslt.org/functions</a>"<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:exsl="<a href="http://exslt.org/common">http://exslt.org/common</a>"<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:tohw="<a href="http://www.uszla.me.uk/xsl/1.0/functions">http://www.uszla.me.uk/xsl/1.0/functions</a>"<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;extension-element-prefixes="func&nbsp;exsl&nbsp;tohw&nbsp;str"<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exclude-result-prefixes="exsl&nbsp;func&nbsp;tohw&nbsp;xsl&nbsp;str"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:output&nbsp;method="text"&nbsp;/&gt;<br>
...&nbsp;&nbsp;&nbsp;<br>
...&nbsp;&nbsp;&nbsp;<br>
...&nbsp;&nbsp;&nbsp;&lt;func:function&nbsp;name="tohw:isAListOfDigits"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;look&nbsp;only&nbsp;for&nbsp;[0-9]+&nbsp;--&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:param&nbsp;name="x_"/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:variable&nbsp;name="x"&nbsp;select="normalize-space($x_)"/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:choose&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:when&nbsp;test="string-length($x)=0"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;func:result&nbsp;select="false()"/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:when&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:when&nbsp;test="substring($x,&nbsp;1,&nbsp;1)='0'&nbsp;or<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;substring($x,&nbsp;1,&nbsp;1)='1'&nbsp;or<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;substring($x,&nbsp;1,&nbsp;1)='2'&nbsp;or<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;substring($x,&nbsp;1,&nbsp;1)='3'&nbsp;or<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;substring($x,&nbsp;1,&nbsp;1)='4'&nbsp;or<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;substring($x,&nbsp;1,&nbsp;1)='5'&nbsp;or<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;substring($x,&nbsp;1,&nbsp;1)='6'&nbsp;or<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;substring($x,&nbsp;1,&nbsp;1)='7'&nbsp;or<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;substring($x,&nbsp;1,&nbsp;1)='8'&nbsp;or<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;substring($x,&nbsp;1,&nbsp;1)='9'"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:choose&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:when&nbsp;test="string-length($x)=1"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;func:result&nbsp;select="true()"/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:when&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:otherwise&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;func:result&nbsp;select="tohw:isAListOfDigits(substring($x,&nbsp;2))"/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:otherwise&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:choose&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:when&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:otherwise&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;func:result&nbsp;select="false()"/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:otherwise&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:choose&gt;<br>
...&nbsp;&nbsp;&nbsp;&lt;/func:function&gt;<br>
...&nbsp;<br>
...&nbsp;&nbsp;&nbsp;&lt;func:function&nbsp;name="tohw:isAnInteger"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;numbers&nbsp;fitting&nbsp;[\+-][0-9]+&nbsp;--&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:param&nbsp;name="x_"/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:variable&nbsp;name="x"&nbsp;select="normalize-space($x_)"/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:variable&nbsp;name="try"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:choose&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:when&nbsp;test="starts-with($x,&nbsp;'+')"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:value-of&nbsp;select="substring($x,2)"/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:when&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:when&nbsp;test="starts-with($x,&nbsp;'-')"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:value-of&nbsp;select="substring($x,2)"/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:when&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:otherwise&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:value-of&nbsp;select="$x"/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:otherwise&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:choose&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:variable&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;func:result&nbsp;select="tohw:isAListOfDigits($try)"/&gt;<br>
...&nbsp;&nbsp;&nbsp;&lt;/func:function&gt;<br>
...&nbsp;<br>
...&nbsp;&nbsp;&nbsp;&lt;func:function&nbsp;name="tohw:isANumberWithoutExponent"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;numbers&nbsp;fitting&nbsp;[\+-][0-9]+(\.[0-9]*)&nbsp;--&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:param&nbsp;name="x"/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:choose&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:when&nbsp;test="contains($x,&nbsp;'.')"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;func:result&nbsp;select="tohw:isAnInteger(substring-before($x,&nbsp;'.'))&nbsp;and<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tohw:isAListOfDigits(substring-after($x,&nbsp;'.'))"/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:when&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:otherwise&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;func:result&nbsp;select="tohw:isAnInteger($x)"/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:otherwise&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:choose&gt;<br>
...&nbsp;&nbsp;&nbsp;&lt;/func:function&gt;<br>
...&nbsp;<br>
...&nbsp;&nbsp;&nbsp;&lt;func:function&nbsp;name="tohw:isAnFPNumber"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;Try&nbsp;and&nbsp;interpret&nbsp;a&nbsp;string&nbsp;as&nbsp;an&nbsp;exponential&nbsp;number&nbsp;--&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;should&nbsp;only&nbsp;recognise&nbsp;strings&nbsp;of&nbsp;the&nbsp;form:&nbsp;[\+-][0-9]*\.[0-9]*([DdEe][+-][0-9]+)?&nbsp;--&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:param&nbsp;name="x"/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:choose&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:when&nbsp;test="contains($x,&nbsp;'d')"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;func:result&nbsp;select="tohw:isANumberWithoutExponent(substring-before($x,&nbsp;'d'))&nbsp;and<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tohw:isAnInteger(substring-after($x,&nbsp;'d'))"/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:when&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:when&nbsp;test="contains($x,&nbsp;'D')"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;func:result&nbsp;select="tohw:isANumberWithoutExponent(substring-before($x,&nbsp;'D'))&nbsp;and<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tohw:isAnInteger(substring-after($x,&nbsp;'D'))"/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:when&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:when&nbsp;test="contains($x,&nbsp;'e')"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;func:result&nbsp;select="tohw:isANumberWithoutExponent(substring-before($x,&nbsp;'e'))&nbsp;and<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tohw:isAnInteger(substring-after($x,&nbsp;'e'))"/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:when&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:when&nbsp;test="contains($x,&nbsp;'E')"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;func:result&nbsp;select="tohw:isANumberWithoutExponent(substring-before($x,&nbsp;'E'))&nbsp;and<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tohw:isAnInteger(substring-after($x,&nbsp;'E'))"/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:when&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:otherwise&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;func:result&nbsp;select="tohw:isANumberWithoutExponent($x)"/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:otherwise&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:choose&gt;<br>
...&nbsp;&nbsp;&nbsp;&lt;/func:function&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
...&nbsp;&nbsp;&nbsp;&lt;xsl:template&nbsp;match="/"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:apply-templates&nbsp;/&gt;<br>
...&nbsp;&nbsp;&nbsp;&lt;/xsl:template&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
...&nbsp;&nbsp;&nbsp;&lt;xsl:template&nbsp;match="cml:scalar"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:variable&nbsp;name="value"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:choose&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:when&nbsp;test="tohw:isAnFPNumber(.)"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:value-of&nbsp;select="."&nbsp;/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:when&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:otherwise&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:text&gt;"&lt;/xsl:text&gt;&lt;xsl:value-of&nbsp;select="."&nbsp;/&gt;&lt;xsl:text&gt;"&lt;/xsl:text&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:otherwise&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:choose&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:variable&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:variable&nbsp;name="units"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:choose&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:when&nbsp;test="@units"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:text&gt;"&lt;/xsl:text&gt;&lt;xsl:value-of&nbsp;select="@units"&nbsp;/&gt;&lt;xsl:text&gt;"&lt;/xsl:text&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:when&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:otherwise&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:text&gt;""&lt;/xsl:text&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:otherwise&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:choose&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:variable&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:text&gt;[&lt;/xsl:text&gt;&lt;xsl:value-of&nbsp;select="$value"/&gt;&lt;xsl:text&gt;,&lt;/xsl:text&gt;&lt;xsl:value-of&nbsp;select="$units"&nbsp;/&gt;&lt;xsl:text&gt;]&lt;/xsl:text&gt;<br>
...&nbsp;&nbsp;&nbsp;&lt;/xsl:template&gt;<br>
...&nbsp;&lt;/xsl:stylesheet&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/golem:template&gt;<br>
...&nbsp;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:template&nbsp;role="defaultoutput"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:stylesheet&nbsp;version='1.0'&nbsp;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:xsl='<a href="http://www.w3.org/1999/XSL/Transform">http://www.w3.org/1999/XSL/Transform</a>'<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:cml='<a href="http://www.xml-cml.org/schema">http://www.xml-cml.org/schema</a>'<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:str="<a href="http://exslt.org/strings">http://exslt.org/strings</a>"<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;extension-element-prefixes="str"<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:output&nbsp;method="text"&nbsp;/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:param&nbsp;name="name"&nbsp;/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:param&nbsp;name="value"&nbsp;/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:template&nbsp;match="/"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:value-of&nbsp;select='$name'&nbsp;/&gt;&lt;xsl:value-of&nbsp;select='$value'&nbsp;/&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:template&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsl:stylesheet&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/golem:template&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:seealso&gt;gwtsystem&lt;/golem:seealso&gt;<br>
...&nbsp;&nbsp;&nbsp;&lt;/entry&gt;<br>
...&nbsp;&lt;/dictionary&gt;<br>
...&nbsp;"""<br>
&gt;&gt;&gt;&nbsp;d&nbsp;=&nbsp;<a href="#Dictionary">Dictionary</a>(StringIO(dictionarystring))<br>
&gt;&gt;&gt;&nbsp;xcf&nbsp;=&nbsp;d["{<a href="http://www.materialsgrid.org/castep/dictionary}xcFunctional">http://www.materialsgrid.org/castep/dictionary}xcFunctional</a>"]<br>
&gt;&gt;&gt;&nbsp;cmlstr&nbsp;=&nbsp;"""&lt;?xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"?&gt;<br>
...&nbsp;&lt;?xml-stylesheet&nbsp;href="display.xsl"&nbsp;type="text/xsl"?&gt;<br>
...&nbsp;&lt;cml&nbsp;convention="FoX_wcml-2.0"&nbsp;fileId="NaCl_00GPa.xml"&nbsp;version="2.4"<br>
...&nbsp;&nbsp;&nbsp;xmlns="<a href="http://www.xml-cml.org/schema">http://www.xml-cml.org/schema</a>"<br>
...&nbsp;&nbsp;&nbsp;xmlns:castep="<a href="http://www.materialsgrid.org/castep/dictionary">http://www.materialsgrid.org/castep/dictionary</a>"<br>
...&nbsp;&nbsp;&nbsp;xmlns:castepunits="<a href="http://www.materialsgrid.org/castep/units">http://www.materialsgrid.org/castep/units</a>"<br>
...&nbsp;&nbsp;&nbsp;xmlns:cml="<a href="http://www.xml-cml.org/dict/cmlDict">http://www.xml-cml.org/dict/cmlDict</a>"<br>
...&nbsp;&nbsp;&nbsp;xmlns:xsd="<a href="http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchema</a>"<br>
...&nbsp;&nbsp;&nbsp;xmlns:dc="<a href="http://purl.org/dc/elements/1.1/title">http://purl.org/dc/elements/1.1/title</a>"<br>
...&nbsp;&nbsp;&nbsp;xmlns:units="<a href="http://www.uszla.me.uk/FoX/units">http://www.uszla.me.uk/FoX/units</a>"<br>
...&nbsp;&nbsp;&nbsp;xmlns:atomicUnits="<a href="http://www.xml-cml.org/units/atomic">http://www.xml-cml.org/units/atomic</a>"&gt;<br>
...&nbsp;&nbsp;&nbsp;&lt;metadataList&nbsp;title="Autocaptured&nbsp;metadata"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;metadata&nbsp;name="dc:date"&nbsp;content="2007-02-09"/&gt;<br>
...&nbsp;&nbsp;&nbsp;&lt;/metadataList&gt;<br>
...&nbsp;&nbsp;&nbsp;&lt;parameterList&nbsp;dictRef="input"&nbsp;convention="Input&nbsp;Parameters"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;parameter&nbsp;dictRef="castep:xcFunctional"<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name="Exchange-Correlation&nbsp;Functional"&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;scalar&nbsp;dataType="xsd:string"&gt;PBE&lt;/scalar&gt;<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/parameter&gt;<br>
...&nbsp;&nbsp;&nbsp;&lt;/parameterList&gt;<br>
...&nbsp;&lt;/cml&gt;<br>
...&nbsp;"""<br>
&gt;&gt;&gt;&nbsp;tree&nbsp;=&nbsp;etree.parse(StringIO(cmlstr))<br>
&gt;&gt;&gt;&nbsp;xcfd&nbsp;=&nbsp;xcf.findin(tree)<br>
&gt;&gt;&gt;&nbsp;print&nbsp;len(xcfd)<br>
1<br>
&gt;&gt;&gt;&nbsp;xcval&nbsp;=&nbsp;xcf.getvalue(xcfd[0])<br>
&gt;&gt;&gt;&nbsp;print&nbsp;xcf.getvalue(xcfd[0])<br>
PBE<br>
&gt;&gt;&gt;&nbsp;#&nbsp;units&nbsp;are&nbsp;not&nbsp;defined&nbsp;on&nbsp;XCFunctional,&nbsp;so:<br>
&gt;&gt;&gt;&nbsp;print&nbsp;xcval.unit<br>
golem:undefined<br>
&gt;&gt;&gt;&nbsp;#&nbsp;by&nbsp;convention<br>
&gt;&gt;&gt;&nbsp;print&nbsp;xcval.entry.definition<br>
&lt;BLANKLINE&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;exchange-correlation&nbsp;functional&nbsp;used.<br>
&lt;BLANKLINE&gt;<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%"><dl><dt>Method resolution order:</dt>
<dd><a href="golem.golem.html#Dictionary">Dictionary</a></dd>
<dd><a href="__builtin__.html#dict">__builtin__.dict</a></dd>
<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
</dl>
<hr>
Methods defined here:<br>
<dl><dt><a name="Dictionary-__init__"><strong>__init__</strong></a>(self, filename<font color="#909090">=None</font>, asModel<font color="#909090">=False</font>)</dt></dl>

<dl><dt><a name="Dictionary-parsexml"><strong>parsexml</strong></a>(self, filename, asModel<font color="#909090">=False</font>)</dt><dd><tt>Load&nbsp;and&nbsp;parse&nbsp;a&nbsp;CML&nbsp;dictionary.</tt></dd></dl>

<dl><dt><a name="Dictionary-serialize"><strong>serialize</strong></a>(self)</dt><dd><tt>Serialize&nbsp;a&nbsp;dictionary&nbsp;back&nbsp;to&nbsp;XML.</tt></dd></dl>

<hr>
Data and other attributes defined here:<br>
<dl><dt><strong>__dict__</strong> = &lt;dictproxy object at 0x23bdf30&gt;<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dl>

<dl><dt><strong>__weakref__</strong> = &lt;attribute '__weakref__' of 'Dictionary' objects&gt;<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;(if&nbsp;defined)</tt></dl>

<hr>
Methods inherited from <a href="__builtin__.html#dict">__builtin__.dict</a>:<br>
<dl><dt><a name="Dictionary-__cmp__"><strong>__cmp__</strong></a>(...)</dt><dd><tt>x.<a href="#Dictionary-__cmp__">__cmp__</a>(y)&nbsp;&lt;==&gt;&nbsp;cmp(x,y)</tt></dd></dl>

<dl><dt><a name="Dictionary-__contains__"><strong>__contains__</strong></a>(...)</dt><dd><tt>D.<a href="#Dictionary-__contains__">__contains__</a>(k)&nbsp;-&gt;&nbsp;True&nbsp;if&nbsp;D&nbsp;has&nbsp;a&nbsp;key&nbsp;k,&nbsp;else&nbsp;False</tt></dd></dl>

<dl><dt><a name="Dictionary-__delitem__"><strong>__delitem__</strong></a>(...)</dt><dd><tt>x.<a href="#Dictionary-__delitem__">__delitem__</a>(y)&nbsp;&lt;==&gt;&nbsp;del&nbsp;x[y]</tt></dd></dl>

<dl><dt><a name="Dictionary-__eq__"><strong>__eq__</strong></a>(...)</dt><dd><tt>x.<a href="#Dictionary-__eq__">__eq__</a>(y)&nbsp;&lt;==&gt;&nbsp;x==y</tt></dd></dl>

<dl><dt><a name="Dictionary-__ge__"><strong>__ge__</strong></a>(...)</dt><dd><tt>x.<a href="#Dictionary-__ge__">__ge__</a>(y)&nbsp;&lt;==&gt;&nbsp;x&gt;=y</tt></dd></dl>

<dl><dt><a name="Dictionary-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#Dictionary-__getattribute__">__getattribute__</a>('name')&nbsp;&lt;==&gt;&nbsp;x.name</tt></dd></dl>

<dl><dt><a name="Dictionary-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#Dictionary-__getitem__">__getitem__</a>(y)&nbsp;&lt;==&gt;&nbsp;x[y]</tt></dd></dl>

<dl><dt><a name="Dictionary-__gt__"><strong>__gt__</strong></a>(...)</dt><dd><tt>x.<a href="#Dictionary-__gt__">__gt__</a>(y)&nbsp;&lt;==&gt;&nbsp;x&gt;y</tt></dd></dl>

<dl><dt><a name="Dictionary-__hash__"><strong>__hash__</strong></a>(...)</dt><dd><tt>x.<a href="#Dictionary-__hash__">__hash__</a>()&nbsp;&lt;==&gt;&nbsp;hash(x)</tt></dd></dl>

<dl><dt><a name="Dictionary-__iter__"><strong>__iter__</strong></a>(...)</dt><dd><tt>x.<a href="#Dictionary-__iter__">__iter__</a>()&nbsp;&lt;==&gt;&nbsp;iter(x)</tt></dd></dl>

<dl><dt><a name="Dictionary-__le__"><strong>__le__</strong></a>(...)</dt><dd><tt>x.<a href="#Dictionary-__le__">__le__</a>(y)&nbsp;&lt;==&gt;&nbsp;x&lt;=y</tt></dd></dl>

<dl><dt><a name="Dictionary-__len__"><strong>__len__</strong></a>(...)</dt><dd><tt>x.<a href="#Dictionary-__len__">__len__</a>()&nbsp;&lt;==&gt;&nbsp;len(x)</tt></dd></dl>

<dl><dt><a name="Dictionary-__lt__"><strong>__lt__</strong></a>(...)</dt><dd><tt>x.<a href="#Dictionary-__lt__">__lt__</a>(y)&nbsp;&lt;==&gt;&nbsp;x&lt;y</tt></dd></dl>

<dl><dt><a name="Dictionary-__ne__"><strong>__ne__</strong></a>(...)</dt><dd><tt>x.<a href="#Dictionary-__ne__">__ne__</a>(y)&nbsp;&lt;==&gt;&nbsp;x!=y</tt></dd></dl>

<dl><dt><a name="Dictionary-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#Dictionary-__repr__">__repr__</a>()&nbsp;&lt;==&gt;&nbsp;repr(x)</tt></dd></dl>

<dl><dt><a name="Dictionary-__setitem__"><strong>__setitem__</strong></a>(...)</dt><dd><tt>x.<a href="#Dictionary-__setitem__">__setitem__</a>(i,&nbsp;y)&nbsp;&lt;==&gt;&nbsp;x[i]=y</tt></dd></dl>

<dl><dt><a name="Dictionary-clear"><strong>clear</strong></a>(...)</dt><dd><tt>D.<a href="#Dictionary-clear">clear</a>()&nbsp;-&gt;&nbsp;None.&nbsp;&nbsp;Remove&nbsp;all&nbsp;items&nbsp;from&nbsp;D.</tt></dd></dl>

<dl><dt><a name="Dictionary-copy"><strong>copy</strong></a>(...)</dt><dd><tt>D.<a href="#Dictionary-copy">copy</a>()&nbsp;-&gt;&nbsp;a&nbsp;shallow&nbsp;copy&nbsp;of&nbsp;D</tt></dd></dl>

<dl><dt><a name="Dictionary-get"><strong>get</strong></a>(...)</dt><dd><tt>D.<a href="#Dictionary-get">get</a>(k[,d])&nbsp;-&gt;&nbsp;D[k]&nbsp;if&nbsp;k&nbsp;in&nbsp;D,&nbsp;else&nbsp;d.&nbsp;&nbsp;d&nbsp;defaults&nbsp;to&nbsp;None.</tt></dd></dl>

<dl><dt><a name="Dictionary-has_key"><strong>has_key</strong></a>(...)</dt><dd><tt>D.<a href="#Dictionary-has_key">has_key</a>(k)&nbsp;-&gt;&nbsp;True&nbsp;if&nbsp;D&nbsp;has&nbsp;a&nbsp;key&nbsp;k,&nbsp;else&nbsp;False</tt></dd></dl>

<dl><dt><a name="Dictionary-items"><strong>items</strong></a>(...)</dt><dd><tt>D.<a href="#Dictionary-items">items</a>()&nbsp;-&gt;&nbsp;list&nbsp;of&nbsp;D's&nbsp;(key,&nbsp;value)&nbsp;pairs,&nbsp;as&nbsp;2-tuples</tt></dd></dl>

<dl><dt><a name="Dictionary-iteritems"><strong>iteritems</strong></a>(...)</dt><dd><tt>D.<a href="#Dictionary-iteritems">iteritems</a>()&nbsp;-&gt;&nbsp;an&nbsp;iterator&nbsp;over&nbsp;the&nbsp;(key,&nbsp;value)&nbsp;items&nbsp;of&nbsp;D</tt></dd></dl>

<dl><dt><a name="Dictionary-iterkeys"><strong>iterkeys</strong></a>(...)</dt><dd><tt>D.<a href="#Dictionary-iterkeys">iterkeys</a>()&nbsp;-&gt;&nbsp;an&nbsp;iterator&nbsp;over&nbsp;the&nbsp;keys&nbsp;of&nbsp;D</tt></dd></dl>

<dl><dt><a name="Dictionary-itervalues"><strong>itervalues</strong></a>(...)</dt><dd><tt>D.<a href="#Dictionary-itervalues">itervalues</a>()&nbsp;-&gt;&nbsp;an&nbsp;iterator&nbsp;over&nbsp;the&nbsp;values&nbsp;of&nbsp;D</tt></dd></dl>

<dl><dt><a name="Dictionary-keys"><strong>keys</strong></a>(...)</dt><dd><tt>D.<a href="#Dictionary-keys">keys</a>()&nbsp;-&gt;&nbsp;list&nbsp;of&nbsp;D's&nbsp;keys</tt></dd></dl>

<dl><dt><a name="Dictionary-pop"><strong>pop</strong></a>(...)</dt><dd><tt>D.<a href="#Dictionary-pop">pop</a>(k[,d])&nbsp;-&gt;&nbsp;v,&nbsp;remove&nbsp;specified&nbsp;key&nbsp;and&nbsp;return&nbsp;the&nbsp;corresponding&nbsp;value<br>
If&nbsp;key&nbsp;is&nbsp;not&nbsp;found,&nbsp;d&nbsp;is&nbsp;returned&nbsp;if&nbsp;given,&nbsp;otherwise&nbsp;KeyError&nbsp;is&nbsp;raised</tt></dd></dl>

<dl><dt><a name="Dictionary-popitem"><strong>popitem</strong></a>(...)</dt><dd><tt>D.<a href="#Dictionary-popitem">popitem</a>()&nbsp;-&gt;&nbsp;(k,&nbsp;v),&nbsp;remove&nbsp;and&nbsp;return&nbsp;some&nbsp;(key,&nbsp;value)&nbsp;pair&nbsp;as&nbsp;a<br>
2-tuple;&nbsp;but&nbsp;raise&nbsp;KeyError&nbsp;if&nbsp;D&nbsp;is&nbsp;empty</tt></dd></dl>

<dl><dt><a name="Dictionary-setdefault"><strong>setdefault</strong></a>(...)</dt><dd><tt>D.<a href="#Dictionary-setdefault">setdefault</a>(k[,d])&nbsp;-&gt;&nbsp;D.<a href="#Dictionary-get">get</a>(k,d),&nbsp;also&nbsp;set&nbsp;D[k]=d&nbsp;if&nbsp;k&nbsp;not&nbsp;in&nbsp;D</tt></dd></dl>

<dl><dt><a name="Dictionary-update"><strong>update</strong></a>(...)</dt><dd><tt>D.<a href="#Dictionary-update">update</a>(E,&nbsp;**F)&nbsp;-&gt;&nbsp;None.&nbsp;&nbsp;Update&nbsp;D&nbsp;from&nbsp;E&nbsp;and&nbsp;F:&nbsp;for&nbsp;k&nbsp;in&nbsp;E:&nbsp;D[k]&nbsp;=&nbsp;E[k]<br>
(if&nbsp;E&nbsp;has&nbsp;keys&nbsp;else:&nbsp;for&nbsp;(k,&nbsp;v)&nbsp;in&nbsp;E:&nbsp;D[k]&nbsp;=&nbsp;v)&nbsp;then:&nbsp;for&nbsp;k&nbsp;in&nbsp;F:&nbsp;D[k]&nbsp;=&nbsp;F[k]</tt></dd></dl>

<dl><dt><a name="Dictionary-values"><strong>values</strong></a>(...)</dt><dd><tt>D.<a href="#Dictionary-values">values</a>()&nbsp;-&gt;&nbsp;list&nbsp;of&nbsp;D's&nbsp;values</tt></dd></dl>

<hr>
Data and other attributes inherited from <a href="__builtin__.html#dict">__builtin__.dict</a>:<br>
<dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object at 0x2df580&gt;<dd><tt>T.<a href="#Dictionary-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>

<dl><dt><strong>fromkeys</strong> = &lt;built-in method fromkeys of type object at 0x6781d0&gt;<dd><tt><a href="__builtin__.html#dict">dict</a>.<a href="#Dictionary-fromkeys">fromkeys</a>(S[,v])&nbsp;-&gt;&nbsp;New&nbsp;<a href="__builtin__.html#dict">dict</a>&nbsp;with&nbsp;keys&nbsp;from&nbsp;S&nbsp;and&nbsp;values&nbsp;equal&nbsp;to&nbsp;v.<br>
v&nbsp;defaults&nbsp;to&nbsp;None.</tt></dl>

</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="Entry">class <strong>Entry</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
    
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt>The&nbsp;<a href="#Entry">Entry</a>&nbsp;class&nbsp;represents&nbsp;an&nbsp;entry&nbsp;in&nbsp;a&nbsp;Golem/CML&nbsp;dictionary.<br>
&nbsp;<br>
Entries&nbsp;have&nbsp;the&nbsp;following&nbsp;structure.<br>
&nbsp;&nbsp;&nbsp;&lt;entry&nbsp;id="template"&nbsp;term="Template&nbsp;entry"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;annotation&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;appinfo&gt;&lt;!--&nbsp;CML-specific&nbsp;machine-processable&nbsp;information&nbsp;--&gt;&lt;/appinfo&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/annotation&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;definition&gt;Human-readable&nbsp;one-liner&nbsp;definition&lt;/definition&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;description&gt;Substantial&nbsp;human-readable&nbsp;documentation&lt;/description&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;metadataList&gt;&lt;!--&nbsp;Dublin&nbsp;Core&nbsp;semantics&nbsp;--&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;metadata&nbsp;name="dc:creator"&nbsp;content="Test&nbsp;Author"&nbsp;/&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/metadataList&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:xpath&gt;&lt;/golem:xpath&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:template&nbsp;role="role"&nbsp;binding="binding"&gt;&nbsp;&lt;!--&nbsp;and&nbsp;optionally&nbsp;"@input"&nbsp;--&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/golem:template&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:possibleValues&nbsp;type="DATATYPE"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:range&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:minimum&gt;1&lt;/golem:minimum&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:maximum&gt;100&lt;/golem:maximum&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/golem:range&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;or&nbsp;--&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:enumeration&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:value&gt;1&lt;/golem:value&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:value&gt;2&lt;/golem:value&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:value&gt;3&lt;/golem:value&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/golem:enumeration&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/golem:possibleValues&gt;&nbsp;&lt;!--&nbsp;or&nbsp;matrix&nbsp;...&nbsp;--&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:implements&gt;otherEntry&lt;/golem:implements&gt;&nbsp;&lt;!--&nbsp;times&nbsp;n&nbsp;--&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:synonym&gt;synonymousEntry&lt;/golem:synonym&gt;&nbsp;&lt;!--&nbsp;times&nbsp;n&nbsp;--&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:seealso&gt;similarEntry&lt;/golem:seealso&gt;&nbsp;&lt;!--&nbsp;times&nbsp;n&nbsp;--&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;golem:childOf&gt;parentEntry&lt;/golem:childOf&gt;&nbsp;&lt;!--&nbsp;times&nbsp;n&nbsp;--&gt;<br>
&nbsp;&nbsp;&nbsp;&lt;/entry&gt;<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="Entry-__init__"><strong>__init__</strong></a>(self, d, xml<font color="#909090">=None</font>, asModel<font color="#909090">=False</font>)</dt></dl>

<dl><dt><a name="Entry-boundscheck"><strong>boundscheck</strong></a>(self, arb, ctype<font color="#909090">=''</font>)</dt><dd><tt>Check&nbsp;that&nbsp;a&nbsp;given&nbsp;piece&nbsp;of&nbsp;data&nbsp;is&nbsp;of&nbsp;the&nbsp;type,&nbsp;and&nbsp;lies&nbsp;within&nbsp;the&nbsp;bounds,<br>
defined&nbsp;in&nbsp;this&nbsp;dictionary&nbsp;entry.</tt></dd></dl>

<dl><dt><a name="Entry-dcall"><strong>dcall</strong></a>(self, template, arb)</dt><dd><tt>Internal&nbsp;method&nbsp;(you'll&nbsp;never&nbsp;call&nbsp;this&nbsp;directly);&nbsp;bounds-check&nbsp;a&nbsp;piece<br>
of&nbsp;data&nbsp;and&nbsp;template&nbsp;it&nbsp;into&nbsp;an&nbsp;associated&nbsp;&lt;golem:template&gt;&nbsp;defined&nbsp;in<br>
the&nbsp;dictionary.&nbsp;These&nbsp;are&nbsp;mapped&nbsp;onto&nbsp;Python&nbsp;methods&nbsp;named&nbsp;after&nbsp;the<br>
name&nbsp;of&nbsp;the&nbsp;&lt;golem:template&gt;.<br>
&nbsp;<br>
In&nbsp;other&nbsp;words,&nbsp;this&nbsp;is&nbsp;where&nbsp;entry.to_value&nbsp;calls&nbsp;come&nbsp;from.</tt></dd></dl>

<dl><dt><a name="Entry-findin"><strong>findin</strong></a>(self, *trees)</dt><dd><tt>Find&nbsp;instances&nbsp;of&nbsp;this&nbsp;dictionary&nbsp;entry&nbsp;in&nbsp;a&nbsp;given&nbsp;ElementTree<br>
or&nbsp;set&nbsp;of&nbsp;ElementTrees.&nbsp;This&nbsp;version&nbsp;supplies&nbsp;*new*,&nbsp;rerooted<br>
ElementTrees,&nbsp;not&nbsp;just&nbsp;the&nbsp;old&nbsp;ElementTrees&nbsp;with&nbsp;a&nbsp;pointer&nbsp;to&nbsp;<br>
the&nbsp;right&nbsp;context&nbsp;-&nbsp;use&nbsp;findin_context&nbsp;for&nbsp;that.</tt></dd></dl>

<dl><dt><a name="Entry-findin_context"><strong>findin_context</strong></a>(self, *trees)</dt><dd><tt>Find&nbsp;instances&nbsp;of&nbsp;this&nbsp;dictionary&nbsp;entry&nbsp;in&nbsp;a&nbsp;(set&nbsp;of)&nbsp;<br>
ElementTrees&nbsp;or&nbsp;filenames.&nbsp;Returns&nbsp;a&nbsp;set&nbsp;of&nbsp;nodes&nbsp;pointing&nbsp;into&nbsp;the<br>
searched&nbsp;ElementTrees.</tt></dd></dl>

<dl><dt><a name="Entry-getAllImplementations"><strong>getAllImplementations</strong></a>(self)</dt><dd><tt>Recursively&nbsp;identify&nbsp;and&nbsp;return&nbsp;all&nbsp;entries&nbsp;which&nbsp;&lt;golem:implement&gt;&nbsp;the<br>
current&nbsp;class&nbsp;(and&nbsp;which&nbsp;are&nbsp;in&nbsp;currently-loaded&nbsp;dictionaries).</tt></dd></dl>

<dl><dt><a name="Entry-getChildren"><strong>getChildren</strong></a>(self)</dt><dd><tt>Recursively&nbsp;identify&nbsp;and&nbsp;return&nbsp;all&nbsp;entries&nbsp;which&nbsp;are&nbsp;&lt;golem:children&gt;<br>
of&nbsp;the&nbsp;current&nbsp;concept&nbsp;-&nbsp;i.e.&nbsp;only&nbsp;ever&nbsp;appear&nbsp;as&nbsp;childNodes&nbsp;of&nbsp;the<br>
(XML)&nbsp;node,&nbsp;or&nbsp;nodes,&nbsp;with&nbsp;which&nbsp;this&nbsp;dictionary&nbsp;entry&nbsp;is&nbsp;associated.</tt></dd></dl>

<dl><dt><a name="Entry-list_to_arbdict"><strong>list_to_arbdict</strong></a>(self, l)</dt><dd><tt>Map&nbsp;a&nbsp;matrix&nbsp;onto&nbsp;a&nbsp;dictionary&nbsp;for&nbsp;subsequent&nbsp;output&nbsp;using&nbsp;XSLT.<br>
&nbsp;<br>
The&nbsp;algorithm&nbsp;used&nbsp;is:<br>
i)&nbsp;Check&nbsp;that&nbsp;the&nbsp;matrix&nbsp;is&nbsp;of&nbsp;the&nbsp;correct&nbsp;shape&nbsp;and&nbsp;within&nbsp;bounds.<br>
ii)&nbsp;From&nbsp;left&nbsp;to&nbsp;right&nbsp;row-wise&nbsp;from&nbsp;the&nbsp;upper&nbsp;left,&nbsp;number&nbsp;off&nbsp;the&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;matrix&nbsp;elements&nbsp;p1,&nbsp;p2,&nbsp;p3...&nbsp;pn&nbsp;(for&nbsp;an&nbsp;n-element&nbsp;matrix),&nbsp;and<br>
&nbsp;&nbsp;&nbsp;&nbsp;store&nbsp;these&nbsp;in&nbsp;a&nbsp;dictionary&nbsp;{"p1":&nbsp;p1,&nbsp;"p2":&nbsp;p2&nbsp;...}.<br>
iii)&nbsp;Return&nbsp;the&nbsp;resulting&nbsp;dictionary.</tt></dd></dl>

<dl><dt><a name="Entry-matrix_boundscheck"><strong>matrix_boundscheck</strong></a>(self, l)</dt><dd><tt>Check&nbsp;that&nbsp;the&nbsp;elements&nbsp;of&nbsp;a&nbsp;given&nbsp;matrix&nbsp;have&nbsp;the&nbsp;type,&nbsp;and&nbsp;lie&nbsp;within<br>
the&nbsp;bounds,&nbsp;defined&nbsp;in&nbsp;the&nbsp;current&nbsp;dictionary&nbsp;entry.</tt></dd></dl>

<dl><dt><a name="Entry-matrix_coercelist"><strong>matrix_coercelist</strong></a>(self, l)</dt><dd><tt>Coerce&nbsp;a&nbsp;matrix&nbsp;into&nbsp;a&nbsp;list,&nbsp;left-to-right,&nbsp;top-to-bottom.</tt></dd></dl>

<dl><dt><a name="Entry-matrix_shapecheck"><strong>matrix_shapecheck</strong></a>(self, l)</dt><dd><tt>Check&nbsp;that&nbsp;a&nbsp;given&nbsp;matrix&nbsp;is,&nbsp;or&nbsp;can&nbsp;be&nbsp;coerced,&nbsp;into&nbsp;the&nbsp;shape&nbsp;<br>
defined&nbsp;in&nbsp;this&nbsp;dictionary&nbsp;entry.</tt></dd></dl>

<dl><dt><a name="Entry-parsexml"><strong>parsexml</strong></a>(self, x, d, asModel<font color="#909090">=False</font>)</dt><dd><tt>Load&nbsp;a&nbsp;dictionary&nbsp;entry&nbsp;from&nbsp;its&nbsp;XML&nbsp;representation.&nbsp;<br>
&nbsp;<br>
arguments:&nbsp;(etree&nbsp;for&nbsp;the&nbsp;entry,&nbsp;parent&nbsp;dictionary&nbsp;<a href="__builtin__.html#object">object</a>).<br>
&nbsp;<br>
Set&nbsp;asModel&nbsp;to&nbsp;true&nbsp;if&nbsp;you're&nbsp;using&nbsp;this&nbsp;dictionary&nbsp;as&nbsp;a&nbsp;model<br>
for&nbsp;building&nbsp;a&nbsp;new&nbsp;one:&nbsp;it&nbsp;stashes&nbsp;way&nbsp;more&nbsp;of&nbsp;the&nbsp;native&nbsp;XML&nbsp;in&nbsp;that<br>
case,&nbsp;allowing&nbsp;you&nbsp;to&nbsp;serialize&nbsp;it&nbsp;out&nbsp;directly&nbsp;into&nbsp;your&nbsp;new&nbsp;dictionary.<br>
At&nbsp;present,&nbsp;this&nbsp;is&nbsp;only&nbsp;used&nbsp;by&nbsp;the&nbsp;dictionary&nbsp;generator<br>
(bin/make_dictionary.py&nbsp;in&nbsp;your&nbsp;Golem&nbsp;distribution.)</tt></dd></dl>

<dl><dt><a name="Entry-serialize"><strong>serialize</strong></a>(self)</dt><dd><tt>Write&nbsp;out&nbsp;this&nbsp;dictionary&nbsp;entry&nbsp;as&nbsp;XML.</tt></dd></dl>

<dl><dt><a name="Entry-with_predicate"><strong>with_predicate</strong></a>(self, predicate)</dt><dd><tt>Set&nbsp;a&nbsp;predicate&nbsp;(condition)&nbsp;on&nbsp;a&nbsp;particular&nbsp;<a href="#Entry">Entry</a>&nbsp;instance.<br>
&nbsp;<br>
This&nbsp;predicate&nbsp;will&nbsp;be&nbsp;honoured&nbsp;on&nbsp;subsequent&nbsp;calls&nbsp;to&nbsp;x.findin&nbsp;for<br>
entry&nbsp;x;&nbsp;it&nbsp;takes&nbsp;the&nbsp;form&nbsp;of&nbsp;an&nbsp;XPath&nbsp;function.</tt></dd></dl>

<hr>
Data and other attributes defined here:<br>
<dl><dt><strong>__dict__</strong> = &lt;dictproxy object at 0x23bdc50&gt;<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dl>

<dl><dt><strong>__weakref__</strong> = &lt;attribute '__weakref__' of 'Entry' objects&gt;<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;(if&nbsp;defined)</tt></dl>

</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="GXpath">class <strong>GXpath</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
    
<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="GXpath-__init__"><strong>__init__</strong></a>(self, xqnode)</dt></dl>

<hr>
Data and other attributes defined here:<br>
<dl><dt><strong>__dict__</strong> = &lt;dictproxy object at 0x23bdfb0&gt;<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dl>

<dl><dt><strong>__weakref__</strong> = &lt;attribute '__weakref__' of 'GXpath' objects&gt;<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;(if&nbsp;defined)</tt></dl>

</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="ImpOnlyEntry">class <strong>ImpOnlyEntry</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
    
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt><a href="#Dictionary">Dictionary</a>&nbsp;helper&nbsp;class:&nbsp;this&nbsp;is&nbsp;used&nbsp;to&nbsp;store&nbsp;information&nbsp;on&nbsp;entries<br>
which&nbsp;have&nbsp;been&nbsp;pointed&nbsp;to&nbsp;(by,&nbsp;say,&nbsp;&lt;golem:implements&gt;),&nbsp;but&nbsp;which&nbsp;haven't<br>
themselves&nbsp;been&nbsp;parsed&nbsp;yet.<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="ImpOnlyEntry-__init__"><strong>__init__</strong></a>(self)</dt></dl>

<hr>
Data and other attributes defined here:<br>
<dl><dt><strong>__dict__</strong> = &lt;dictproxy object at 0x23bdf30&gt;<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dl>

<dl><dt><strong>__weakref__</strong> = &lt;attribute '__weakref__' of 'ImpOnlyEntry' objects&gt;<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;(if&nbsp;defined)</tt></dl>

</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#eeaa77">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
    
<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl><dt><a name="-loadDictionary"><strong>loadDictionary</strong></a>(filename)</dt><dd><tt>Load&nbsp;a&nbsp;dictionary&nbsp;from&nbsp;a&nbsp;default&nbsp;location&nbsp;on&nbsp;the&nbsp;filesystem.<br>
&nbsp;&nbsp;&nbsp;&nbsp;<br>
On&nbsp;Windows,&nbsp;this&nbsp;is&nbsp;C:\cmldictionaries\&nbsp;and&nbsp;must&nbsp;be&nbsp;changed&nbsp;by&nbsp;<br>
editing&nbsp;golem.py&nbsp;by&nbsp;hand:&nbsp;on&nbsp;Unix,&nbsp;it&nbsp;defaults&nbsp;to&nbsp;~/.cmldictionaries/<br>
but&nbsp;can&nbsp;be&nbsp;overridden&nbsp;by&nbsp;setting&nbsp;the&nbsp;environment&nbsp;variable<br>
CMLDICTIONARIES.</tt></dd></dl>
 <dl><dt><a name="-setDataWarning"><strong>setDataWarning</strong></a>(val)</dt><dd><tt>Set&nbsp;whether&nbsp;warnings&nbsp;will&nbsp;be&nbsp;emitted&nbsp;when&nbsp;unit/type-bearing&nbsp;data&nbsp;is&nbsp;modified.<br>
&nbsp;<br>
Default&nbsp;is&nbsp;True.</tt></dd></dl>
 <dl><dt><a name="-setTypeWarning"><strong>setTypeWarning</strong></a>(val)</dt><dd><tt>Set&nbsp;whether&nbsp;warnings&nbsp;will&nbsp;be&nbsp;emitted&nbsp;when&nbsp;a&nbsp;dictionary&nbsp;<a href="#Entry">Entry</a>&nbsp;without&nbsp;<br>
a&nbsp;defined&nbsp;type&nbsp;is&nbsp;used.<br>
&nbsp;<br>
Default&nbsp;is&nbsp;True.</tt></dd></dl>
</td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#55aa55">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
    
<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><strong>data_warning</strong> = True<br>
<strong>type_warning</strong> = True<br>
<strong>version</strong> = '0.9beta'</td></tr></table>
</body></html>